---
title: Страницы
description: Узнайте, как создавать страницы вашего сайта документации и управлять ими с помощью Starlight.
sidebar:
  order: 1
---

Starlight генерирует HTML-страницы вашего сайта на основе вашего контента с гибкими опциями, предоставляемыми через интерфейс Markdown.
Кроме того, проекты Starlight имеют полный доступ к [мощным инструментам создания страниц Astro](https://docs.astro.build/ru/basics/astro-pages/).
В этом руководстве объясняется, как работает генерация страниц в Starlight.

## Содержимое страниц

### Форматы файлов

Starlight поддерживает создание контента в Markdown и MDX без необходимости настройки.
Вы можете добавить поддержку Markdoc, следуя [руководству](/ru/guides/authoring-content/#markdoc).

### Добавление страниц

Добавляйте новые страницы на свой сайт, создавая файлы `.md` или `.mdx` в `src/content/docs/`.
Используйте подпапки для организации файлов и создания нескольких сегментов пути.

Например, следующая файловая структура будет генерировать страницы `example.com/hello-world` и `example.com/reference/faq`:

import { FileTree } from '@astrojs/starlight/components';

<FileTree>

- src/
  - content/
    - docs/
      - hello-world.md
      - reference/
        - faq.md

</FileTree>

### Типобезопасные метаданные

Все страницы Starlight используют настраиваемый [общий набор свойств метаданных](/ru/reference/frontmatter/) для контроля отображения страницы:

```md
---
title: Привет, мир!
description: Это страница на моем сайте, работающем на Starlight
---
```

Если вы что-то забудете, Starlight сообщит вам об этом.

## Пользовательские страницы

Для расширенных вариантов использования вы можете добавлять собственные страницы, создав каталог `src/pages/`.
Каталог `src/pages/` использует [маршрутизацию на основе файлов Astro](https://docs.astro.build/ru/basics/astro-pages/#%D0%BC%D0%B0%D1%80%D1%88%D1%80%D1%83%D1%82%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D1%8F-%D0%BD%D0%B0-%D0%BE%D1%81%D0%BD%D0%BE%D0%B2%D0%B5-%D1%84%D0%B0%D0%B9%D0%BB%D0%BE%D0%B2) и включает поддержку файлов с расширением `.astro` помимо других форматов страниц.
Это полезно, если вам нужно создать страницу с полностью настраиваемым макетом или создать страницу из альтернативного источника данных.

Например, в этом проекте содержимое Markdown смешивается в `src/content/docs/` с маршрутами Astro и HTML в `src/pages/`:

<FileTree>

- src/
  - content/
    - docs/
      - hello-world.md
  - pages/
    - custom.astro
    - archived.html

</FileTree>

Подробнее читайте в [руководстве «Страницы» в документации Astro](https://docs.astro.build/ru/basics/astro-pages/).

### Использование дизайна Starlight на пользовательских страницах

Чтобы использовать макет Starlight на пользовательских страницах, оберните содержимое страницы компонентом `<StarlightPage />`.
Это может быть полезно, если вы динамически генерируете контент, но всё же хотите использовать дизайн Starlight.

```astro
---
// src/pages/custom-page/example.astro
import StarlightPage from '@astrojs/starlight/components/StarlightPage.astro';
import CustomComponent from './CustomComponent.astro';
---

<StarlightPage frontmatter={{ title: 'Моя персонализированная страница' }}>
	<p>Это пользовательская страница с пользовательским компонентом:</p>
	<CustomComponent />
</StarlightPage>
```

#### Параметры

Компонент `<StarlightPage />` принимает следующие параметры.

##### `frontmatter` (обязательно)

**тип:** `StarlightPageFrontmatter`

Установка [метаданных](/ru/reference/frontmatter/) для этой страницы, аналогично метаданным на страницах Markdown.
Свойство [`title`](/ru/reference/frontmatter/#title-обязательно) является обязательным, а все остальные свойства — нет.

Следующие свойства отличаются от метаданных Markdown:

- Свойство [`slug`](/ru/reference/frontmatter/#slug) не поддерживается и устанавливается автоматически на основе URL-адреса пользовательской страницы.
- Свойство [`editUrl`](/ru/reference/frontmatter/#editurl) требует указания URL-адреса для отображения ссылки на редактирование.
- Свойство [`sidebar`](/ru/reference/frontmatter/#sidebar) для настройки отображения страницы в [автогенерируемых группах ссылок](/ru/reference/configuration/#sidebar) недоступно. Страницы, использующие компонент `<StarlightPage />`, не являются частью коллекции и не могут быть добавлены в автоматически созданную группу боковой панели.
- Свойство [`draft`](/ru/reference/frontmatter/#draft) лишь отображает [уведомление](/ru/reference/overrides/#draftcontentnotice) о том, что страница является черновиком, но не исключает её автоматически из продакшен-сборок.

##### `sidebar`

**тип:** [`SidebarItem[]`](/ru/reference/configuration/#sidebaritem)  
**по умолчанию:** боковая панель, созданная на основе [глобальной конфигурации `sidebar`](/ru/reference/configuration/#sidebar)

Предоставление настраиваемой боковой панели навигации для этой страницы.
Если этот параметр не установлен, на странице будет использоваться глобальная боковая панель по умолчанию.

Например, следующая страница переопределяет стандартную боковую панель со ссылкой на главную страницу и группой ссылок на другие пользовательские страницы.

```astro {3-13}
<StarlightPage
	frontmatter={{ title: 'Орион' }}
	sidebar={[
		{ label: 'Главная', link: '/' },
		{
			label: 'Созвездия',
			items: [
				{ label: 'Андромеда', link: '/andromeda/' },
				{ label: 'Орион', link: '/orion/' },
				{ label: 'Малая Медведица', link: '/ursa-minor/', badge: 'Заглушка' },
			],
		},
	]}
>
	Пример контента.
</StarlightPage>
```

Подробнее о доступных вариантах настройки боковой панели см. в руководстве [Боковая панель](/ru/guides/sidebar/).

##### `hasSidebar`

**тип:** `boolean`  
**по умолчанию:** `false` если [`frontmatter.template`](/ru/reference/frontmatter/#template) имеет значение `'splash'`, в противном случае `true`

Отображение боковой панели на этой странице.

##### `headings`

**тип:** `{ depth: number; slug: string; text: string }[]`  
**по умолчанию:** `[]`

Предоставление массива всех заголовков на этой странице.
Starlight сгенерирует оглавление страницы из этих заголовков, если они предусмотрены.

##### `dir`

**тип:** `'ltr' | 'rtl'`  
**по умолчанию:** направление письма для текущей локали

Установка направления письма для содержимого этой страницы.

##### `lang`

**тип:** `string`  
**по умолчанию:** язык текущей локали

Установка языкового тега BCP-47 для содержимого этой страницы, например: `en`, `zh-CN` или `pt-BR`.

##### `isFallback`

**тип:** `boolean`  
**по умолчанию:** `false`

Отображение [резервного контента](/ru/guides/i18n/#резервный-контент), если перевод на текущий язык отсутствует.
